package controllers

import (
	"encoding/json"
	"errors"
	//"github.com/astaxie/beego"
	// "lottery/constant"
	"lottery/models"
	// "lottery/utils"
	"strconv"
)

type AgentCtl struct {
	BaseCtl
}

func (a *AgentCtl) AddCount() {
	if !a.isLogin() {
		a.SetJson("请先登录！", nil)
		return
	}

	agent := &models.Agent{}
	err := json.Unmarshal(a.Ctx.Input.RequestBody, agent)
	if err != nil {
		a.SetJson(nil, err)
		return
	}

	if agent.LoginName == "" || agent.Passwd == "" {
		a.SetJson(nil, errors.New("账户名或者密码不能为空"))
		return
	}
	if models.ExistsLoginName(agent.LoginName, agent.PlatformId) {
		a.SetJson(nil, errors.New("账号已存在!"))
		return
	}
	agent.UserId = a.GetUserId()
	err = models.SaveAgent(agent)
	if err != nil {
		a.SetJson(nil, err)
		return
	}

	a.SetJson("增加成功", nil)
	return
	//{"isUse":false,"order":0,"website":"www.baidu.com","username":"qqq123","password":"11","balance":"","Explain":"123"}
}
func (a *AgentCtl) Update() {
	if !a.isLogin() {
		a.SetJson("请先登录！", nil)
		return
	}

	agent := &models.Agent{}

	err := json.Unmarshal(a.Ctx.Input.RequestBody, agent)

	if err != nil {
		a.SetJson(nil, err)
		return
	}

	if agent.LoginName == "" || agent.Passwd == "" {
		a.SetJson(nil, errors.New("账户名或者密码不能为空"))
		return
	}

	if !models.ExistsLoginName(agent.LoginName, agent.PlatformId) {
		a.SetJson(nil, errors.New("账户不存在"))
		return
	}
	err = models.UpdateAgent(agent)
	if err != nil {
		a.SetJson(nil, err)
		return
	}

	a.SetJson("修改成功！", nil)
	return
}
func (a *AgentCtl) DelCount() {

	if !a.isLogin() {
		a.SetJson("请先登录！", nil)
		return
	}

	agent := &models.Agent{}

	err := json.Unmarshal(a.Ctx.Input.RequestBody, agent)

	if err != nil {
		a.SetJson(nil, err)
		return
	}

	if agent.LoginName == "" || agent.Passwd == "" {
		a.SetJson(nil, errors.New("账户名或者密码不能为空"))
		return
	}

	if !models.ExistsLoginName(agent.LoginName, agent.PlatformId) {
		a.SetJson(nil, errors.New("账户不存在"))
		return
	}

	err = models.DelAgent(agent)
	if err != nil {
		a.SetJson(nil, err)
		return
	}
	a.SetJson("删除成功", nil)
	return

}

func (a *AgentCtl) GetAccoutList() {
	if !a.isLogin() {
		a.SetJson("请先登录！", nil)
		return
	}
	userId := a.GetUserId()
	agents, err := models.GetUserAgents(userId)
	if err != nil {
		a.SetJson(nil, err)
		return
	}
	a.SetJson(agents, nil)
}

func (a *AgentCtl) UpdataAllCount() {
	if !a.isLogin() {
		a.SetJson("请先登录！", nil)
		return
	}
	userId := a.GetUserId()

	all_type := a.GetString("type", "-1")
	if all_type == "-1" {
		a.SetJson(nil, errors.New("请设置操作类型"))
		return
	}

	all_t, err := strconv.Atoi(all_type)

	if err != nil {
		a.SetJson(nil, err)
		return
	}

	err = models.UpdataAllCount(userId, all_t)
	if err != nil {
		a.SetJson(nil, err)
		return
	}

	a.SetJson("设置成功！", nil)
	return

}
